/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 
 * 
 *
 * 
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using System;
using System.Collections.Generic;
using System.Text;

using JDCloudSDK.Core.Annotation;
using Newtonsoft.Json;

namespace JDCloudSDK.Kubernetes.Model
{

    /// <summary>
    ///  创建集群请求参数模型
    /// </summary>
    public class ClusterSpec
    {

        ///<summary>
        /// 名称（同一用户的 cluster 允许重名）
        ///Required:true
        ///</summary>
        [Required]
        public string Name{ get; set; }
        ///<summary>
        /// 描述
        ///</summary>
        public string Description{ get; set; }
        ///<summary>
        /// 默认开启 basicAuth与clientCertificate最少选择一个
        ///</summary>
        public bool BasicAuth{ get; set; }
        ///<summary>
        /// 默认开启 basicAuth与clientCertificate最少选择一个
        ///</summary>
        public bool ClientCertificate{ get; set; }
        ///<summary>
        /// kubernetes的版本,默认1.8
        ///</summary>
        [JsonProperty("version")]
        public string VersionValue{ get; set; }
        ///<summary>
        /// 集群所在的az
        ///Required:true
        ///</summary>
        [Required]
        public List<string> Azs{ get; set; }
        ///<summary>
        /// 实例组
        ///</summary>
        public NodeGroupSpec NodeGroup{ get; set; }
        ///<summary>
        /// k8s的master的cidr
        ///Required:true
        ///</summary>
        [Required]
        public string MasterCIDR{ get; set; }
        ///<summary>
        /// 用户的AccessKey，插件调用open-api时的认证凭证
        ///Required:true
        ///</summary>
        [Required]
        public string AccessKey{ get; set; }
        ///<summary>
        /// 用户的SecretKey，插件调用open-api时的认证凭证
        ///Required:true
        ///</summary>
        [Required]
        public string SecretKey{ get; set; }
    }
}
